RewriteEngine On

# Redirect URL .php menjadi tanpa .php
RewriteCond %{THE_REQUEST} \s(.+?)\.php[\s?] [NC]
RewriteRule ^ %1 [R=301,L]

# Cari file .php pada semua level folder
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+?)/?$ $1.php [L]

# Halaman utama
DirectoryIndex index.php

# Custom 404
ErrorDocument 404 /404.php

# Jika file/folder tidak ada, tampilkan 404.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /404.php [L]